namespace ColorFillGame.Domain.Events;

public class GameCreatedEvent : DomainEvent
{
    public Guid GameId { get; private set; }
    public string GameName { get; private set; }
    public int GridSize { get; private set; }
    public int MaxPlayers { get; private set; }

    public GameCreatedEvent(Guid gameId, string gameName, int gridSize, int maxPlayers)
    {
        GameId = gameId;
        GameName = gameName;
        GridSize = gridSize;
        MaxPlayers = maxPlayers;
        OccurredOn = DateTime.UtcNow;
    }
}

public abstract class DomainEvent
{
    public DateTime OccurredOn { get; protected set; }
    public bool IsPublished { get; set; } = false;
}